package org.dromara.netbar.domain.vo;

import org.dromara.netbar.domain.NetbarProductStockLog;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 网吧商品库存流水视图对象 netbar_product_stock_log
 *
 * @author Lion Li
 * @date 2025-08-21
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = NetbarProductStockLog.class)
public class NetbarProductStockLogVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 流水ID
     */
    @ExcelProperty(value = "流水ID")
    private Long logId;

    /**
     * 商品ID
     */
    @ExcelProperty(value = "商品ID")
    private Long productId;

    /**
     * 仓库ID
     */
    @ExcelProperty(value = "仓库ID")
    private Long warehouseId;

    /**
     * 变动类型（1入库 2出库 3调拨 4盘点 5损耗 6初始）
     */
    @ExcelProperty(value = "变动类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=入库,2=出库,3=调拨,4=盘点,5=损耗,6=初始")
    private String changeType;

    /**
     * 变动数量（正数增加，负数减少）
     */
    @ExcelProperty(value = "变动数量", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "正=数增加，负数减少")
    private Long changeCount;

    /**
     * 当前库存（变动后的真实库存）
     */
    @ExcelProperty(value = "当前库存", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "变=动后的真实库存")
    private Long currentStock;

    /**
     * 关联单据号
     */
    @ExcelProperty(value = "关联单据号")
    private String relatedOrder;

    /**
     * 批次号
     */
    @ExcelProperty(value = "批次号")
    private String batchNo;

    /**
     * 供应商ID
     */
    @ExcelProperty(value = "供应商ID")
    private Long supplierId;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;


}
